/*
 * Selling Partner API for A+ Content Management
 * With the A+ Content API, you can build applications that help selling partners add rich marketing content to their Amazon product detail pages. A+ content helps selling partners share their brand and product story, which helps buyers make informed purchasing decisions. Selling partners assemble content by choosing from content modules and adding images and text.
 *
 * OpenAPI spec version: 2020-11-01
 * 
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */


package com.amazon.model.aplusContent;

import java.util.Objects;
import java.util.Arrays;

import com.amazon.model.aplusContent.ContentModuleType;
import com.amazon.model.aplusContent.StandardCompanyLogoModule;
import com.amazon.model.aplusContent.StandardComparisonTableModule;
import com.amazon.model.aplusContent.StandardFourImageTextModule;
import com.amazon.model.aplusContent.StandardFourImageTextQuadrantModule;
import com.amazon.model.aplusContent.StandardHeaderImageTextModule;
import com.amazon.model.aplusContent.StandardImageSidebarModule;
import com.amazon.model.aplusContent.StandardImageTextOverlayModule;
import com.amazon.model.aplusContent.StandardMultipleImageTextModule;
import com.amazon.model.aplusContent.StandardProductDescriptionModule;
import com.amazon.model.aplusContent.StandardSingleImageHighlightsModule;
import com.amazon.model.aplusContent.StandardSingleImageSpecsDetailModule;
import com.amazon.model.aplusContent.StandardSingleSideImageModule;
import com.amazon.model.aplusContent.StandardTechSpecsModule;
import com.amazon.model.aplusContent.StandardTextModule;
import com.amazon.model.aplusContent.StandardThreeImageTextModule;
import com.google.gson.TypeAdapter;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.annotations.SerializedName;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.IOException;

/**
 * An A+ Content module. An A+ Content document is composed of content modules. The contentModuleType property selects which content module types to use.
 */
@ApiModel(description = "An A+ Content module. An A+ Content document is composed of content modules. The contentModuleType property selects which content module types to use.")
@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2021-04-23T10:36:58.761+08:00")
public class ContentModule {
  @SerializedName("contentModuleType")
  private ContentModuleType contentModuleType = null;

  @SerializedName("standardCompanyLogo")
  private StandardCompanyLogoModule standardCompanyLogo = null;

  @SerializedName("standardComparisonTable")
  private StandardComparisonTableModule standardComparisonTable = null;

  @SerializedName("standardFourImageText")
  private StandardFourImageTextModule standardFourImageText = null;

  @SerializedName("standardFourImageTextQuadrant")
  private StandardFourImageTextQuadrantModule standardFourImageTextQuadrant = null;

  @SerializedName("standardHeaderImageText")
  private StandardHeaderImageTextModule standardHeaderImageText = null;

  @SerializedName("standardImageSidebar")
  private StandardImageSidebarModule standardImageSidebar = null;

  @SerializedName("standardImageTextOverlay")
  private StandardImageTextOverlayModule standardImageTextOverlay = null;

  @SerializedName("standardMultipleImageText")
  private StandardMultipleImageTextModule standardMultipleImageText = null;

  @SerializedName("standardProductDescription")
  private StandardProductDescriptionModule standardProductDescription = null;

  @SerializedName("standardSingleImageHighlights")
  private StandardSingleImageHighlightsModule standardSingleImageHighlights = null;

  @SerializedName("standardSingleImageSpecsDetail")
  private StandardSingleImageSpecsDetailModule standardSingleImageSpecsDetail = null;

  @SerializedName("standardSingleSideImage")
  private StandardSingleSideImageModule standardSingleSideImage = null;

  @SerializedName("standardTechSpecs")
  private StandardTechSpecsModule standardTechSpecs = null;

  @SerializedName("standardText")
  private StandardTextModule standardText = null;

  @SerializedName("standardThreeImageText")
  private StandardThreeImageTextModule standardThreeImageText = null;

  public ContentModule contentModuleType(ContentModuleType contentModuleType) {
    this.contentModuleType = contentModuleType;
    return this;
  }

   /**
   * Get contentModuleType
   * @return contentModuleType
  **/
  @ApiModelProperty(required = true, value = "")
  public ContentModuleType getContentModuleType() {
    return contentModuleType;
  }

  public void setContentModuleType(ContentModuleType contentModuleType) {
    this.contentModuleType = contentModuleType;
  }

  public ContentModule standardCompanyLogo(StandardCompanyLogoModule standardCompanyLogo) {
    this.standardCompanyLogo = standardCompanyLogo;
    return this;
  }

   /**
   * Get standardCompanyLogo
   * @return standardCompanyLogo
  **/
  @ApiModelProperty(value = "")
  public StandardCompanyLogoModule getStandardCompanyLogo() {
    return standardCompanyLogo;
  }

  public void setStandardCompanyLogo(StandardCompanyLogoModule standardCompanyLogo) {
    this.standardCompanyLogo = standardCompanyLogo;
  }

  public ContentModule standardComparisonTable(StandardComparisonTableModule standardComparisonTable) {
    this.standardComparisonTable = standardComparisonTable;
    return this;
  }

   /**
   * Get standardComparisonTable
   * @return standardComparisonTable
  **/
  @ApiModelProperty(value = "")
  public StandardComparisonTableModule getStandardComparisonTable() {
    return standardComparisonTable;
  }

  public void setStandardComparisonTable(StandardComparisonTableModule standardComparisonTable) {
    this.standardComparisonTable = standardComparisonTable;
  }

  public ContentModule standardFourImageText(StandardFourImageTextModule standardFourImageText) {
    this.standardFourImageText = standardFourImageText;
    return this;
  }

   /**
   * Get standardFourImageText
   * @return standardFourImageText
  **/
  @ApiModelProperty(value = "")
  public StandardFourImageTextModule getStandardFourImageText() {
    return standardFourImageText;
  }

  public void setStandardFourImageText(StandardFourImageTextModule standardFourImageText) {
    this.standardFourImageText = standardFourImageText;
  }

  public ContentModule standardFourImageTextQuadrant(StandardFourImageTextQuadrantModule standardFourImageTextQuadrant) {
    this.standardFourImageTextQuadrant = standardFourImageTextQuadrant;
    return this;
  }

   /**
   * Get standardFourImageTextQuadrant
   * @return standardFourImageTextQuadrant
  **/
  @ApiModelProperty(value = "")
  public StandardFourImageTextQuadrantModule getStandardFourImageTextQuadrant() {
    return standardFourImageTextQuadrant;
  }

  public void setStandardFourImageTextQuadrant(StandardFourImageTextQuadrantModule standardFourImageTextQuadrant) {
    this.standardFourImageTextQuadrant = standardFourImageTextQuadrant;
  }

  public ContentModule standardHeaderImageText(StandardHeaderImageTextModule standardHeaderImageText) {
    this.standardHeaderImageText = standardHeaderImageText;
    return this;
  }

   /**
   * Get standardHeaderImageText
   * @return standardHeaderImageText
  **/
  @ApiModelProperty(value = "")
  public StandardHeaderImageTextModule getStandardHeaderImageText() {
    return standardHeaderImageText;
  }

  public void setStandardHeaderImageText(StandardHeaderImageTextModule standardHeaderImageText) {
    this.standardHeaderImageText = standardHeaderImageText;
  }

  public ContentModule standardImageSidebar(StandardImageSidebarModule standardImageSidebar) {
    this.standardImageSidebar = standardImageSidebar;
    return this;
  }

   /**
   * Get standardImageSidebar
   * @return standardImageSidebar
  **/
  @ApiModelProperty(value = "")
  public StandardImageSidebarModule getStandardImageSidebar() {
    return standardImageSidebar;
  }

  public void setStandardImageSidebar(StandardImageSidebarModule standardImageSidebar) {
    this.standardImageSidebar = standardImageSidebar;
  }

  public ContentModule standardImageTextOverlay(StandardImageTextOverlayModule standardImageTextOverlay) {
    this.standardImageTextOverlay = standardImageTextOverlay;
    return this;
  }

   /**
   * Get standardImageTextOverlay
   * @return standardImageTextOverlay
  **/
  @ApiModelProperty(value = "")
  public StandardImageTextOverlayModule getStandardImageTextOverlay() {
    return standardImageTextOverlay;
  }

  public void setStandardImageTextOverlay(StandardImageTextOverlayModule standardImageTextOverlay) {
    this.standardImageTextOverlay = standardImageTextOverlay;
  }

  public ContentModule standardMultipleImageText(StandardMultipleImageTextModule standardMultipleImageText) {
    this.standardMultipleImageText = standardMultipleImageText;
    return this;
  }

   /**
   * Get standardMultipleImageText
   * @return standardMultipleImageText
  **/
  @ApiModelProperty(value = "")
  public StandardMultipleImageTextModule getStandardMultipleImageText() {
    return standardMultipleImageText;
  }

  public void setStandardMultipleImageText(StandardMultipleImageTextModule standardMultipleImageText) {
    this.standardMultipleImageText = standardMultipleImageText;
  }

  public ContentModule standardProductDescription(StandardProductDescriptionModule standardProductDescription) {
    this.standardProductDescription = standardProductDescription;
    return this;
  }

   /**
   * Get standardProductDescription
   * @return standardProductDescription
  **/
  @ApiModelProperty(value = "")
  public StandardProductDescriptionModule getStandardProductDescription() {
    return standardProductDescription;
  }

  public void setStandardProductDescription(StandardProductDescriptionModule standardProductDescription) {
    this.standardProductDescription = standardProductDescription;
  }

  public ContentModule standardSingleImageHighlights(StandardSingleImageHighlightsModule standardSingleImageHighlights) {
    this.standardSingleImageHighlights = standardSingleImageHighlights;
    return this;
  }

   /**
   * Get standardSingleImageHighlights
   * @return standardSingleImageHighlights
  **/
  @ApiModelProperty(value = "")
  public StandardSingleImageHighlightsModule getStandardSingleImageHighlights() {
    return standardSingleImageHighlights;
  }

  public void setStandardSingleImageHighlights(StandardSingleImageHighlightsModule standardSingleImageHighlights) {
    this.standardSingleImageHighlights = standardSingleImageHighlights;
  }

  public ContentModule standardSingleImageSpecsDetail(StandardSingleImageSpecsDetailModule standardSingleImageSpecsDetail) {
    this.standardSingleImageSpecsDetail = standardSingleImageSpecsDetail;
    return this;
  }

   /**
   * Get standardSingleImageSpecsDetail
   * @return standardSingleImageSpecsDetail
  **/
  @ApiModelProperty(value = "")
  public StandardSingleImageSpecsDetailModule getStandardSingleImageSpecsDetail() {
    return standardSingleImageSpecsDetail;
  }

  public void setStandardSingleImageSpecsDetail(StandardSingleImageSpecsDetailModule standardSingleImageSpecsDetail) {
    this.standardSingleImageSpecsDetail = standardSingleImageSpecsDetail;
  }

  public ContentModule standardSingleSideImage(StandardSingleSideImageModule standardSingleSideImage) {
    this.standardSingleSideImage = standardSingleSideImage;
    return this;
  }

   /**
   * Get standardSingleSideImage
   * @return standardSingleSideImage
  **/
  @ApiModelProperty(value = "")
  public StandardSingleSideImageModule getStandardSingleSideImage() {
    return standardSingleSideImage;
  }

  public void setStandardSingleSideImage(StandardSingleSideImageModule standardSingleSideImage) {
    this.standardSingleSideImage = standardSingleSideImage;
  }

  public ContentModule standardTechSpecs(StandardTechSpecsModule standardTechSpecs) {
    this.standardTechSpecs = standardTechSpecs;
    return this;
  }

   /**
   * Get standardTechSpecs
   * @return standardTechSpecs
  **/
  @ApiModelProperty(value = "")
  public StandardTechSpecsModule getStandardTechSpecs() {
    return standardTechSpecs;
  }

  public void setStandardTechSpecs(StandardTechSpecsModule standardTechSpecs) {
    this.standardTechSpecs = standardTechSpecs;
  }

  public ContentModule standardText(StandardTextModule standardText) {
    this.standardText = standardText;
    return this;
  }

   /**
   * Get standardText
   * @return standardText
  **/
  @ApiModelProperty(value = "")
  public StandardTextModule getStandardText() {
    return standardText;
  }

  public void setStandardText(StandardTextModule standardText) {
    this.standardText = standardText;
  }

  public ContentModule standardThreeImageText(StandardThreeImageTextModule standardThreeImageText) {
    this.standardThreeImageText = standardThreeImageText;
    return this;
  }

   /**
   * Get standardThreeImageText
   * @return standardThreeImageText
  **/
  @ApiModelProperty(value = "")
  public StandardThreeImageTextModule getStandardThreeImageText() {
    return standardThreeImageText;
  }

  public void setStandardThreeImageText(StandardThreeImageTextModule standardThreeImageText) {
    this.standardThreeImageText = standardThreeImageText;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ContentModule contentModule = (ContentModule) o;
    return Objects.equals(this.contentModuleType, contentModule.contentModuleType) &&
        Objects.equals(this.standardCompanyLogo, contentModule.standardCompanyLogo) &&
        Objects.equals(this.standardComparisonTable, contentModule.standardComparisonTable) &&
        Objects.equals(this.standardFourImageText, contentModule.standardFourImageText) &&
        Objects.equals(this.standardFourImageTextQuadrant, contentModule.standardFourImageTextQuadrant) &&
        Objects.equals(this.standardHeaderImageText, contentModule.standardHeaderImageText) &&
        Objects.equals(this.standardImageSidebar, contentModule.standardImageSidebar) &&
        Objects.equals(this.standardImageTextOverlay, contentModule.standardImageTextOverlay) &&
        Objects.equals(this.standardMultipleImageText, contentModule.standardMultipleImageText) &&
        Objects.equals(this.standardProductDescription, contentModule.standardProductDescription) &&
        Objects.equals(this.standardSingleImageHighlights, contentModule.standardSingleImageHighlights) &&
        Objects.equals(this.standardSingleImageSpecsDetail, contentModule.standardSingleImageSpecsDetail) &&
        Objects.equals(this.standardSingleSideImage, contentModule.standardSingleSideImage) &&
        Objects.equals(this.standardTechSpecs, contentModule.standardTechSpecs) &&
        Objects.equals(this.standardText, contentModule.standardText) &&
        Objects.equals(this.standardThreeImageText, contentModule.standardThreeImageText);
  }

  @Override
  public int hashCode() {
    return Objects.hash(contentModuleType, standardCompanyLogo, standardComparisonTable, standardFourImageText, standardFourImageTextQuadrant, standardHeaderImageText, standardImageSidebar, standardImageTextOverlay, standardMultipleImageText, standardProductDescription, standardSingleImageHighlights, standardSingleImageSpecsDetail, standardSingleSideImage, standardTechSpecs, standardText, standardThreeImageText);
  }


  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ContentModule {\n");
    
    sb.append("    contentModuleType: ").append(toIndentedString(contentModuleType)).append("\n");
    sb.append("    standardCompanyLogo: ").append(toIndentedString(standardCompanyLogo)).append("\n");
    sb.append("    standardComparisonTable: ").append(toIndentedString(standardComparisonTable)).append("\n");
    sb.append("    standardFourImageText: ").append(toIndentedString(standardFourImageText)).append("\n");
    sb.append("    standardFourImageTextQuadrant: ").append(toIndentedString(standardFourImageTextQuadrant)).append("\n");
    sb.append("    standardHeaderImageText: ").append(toIndentedString(standardHeaderImageText)).append("\n");
    sb.append("    standardImageSidebar: ").append(toIndentedString(standardImageSidebar)).append("\n");
    sb.append("    standardImageTextOverlay: ").append(toIndentedString(standardImageTextOverlay)).append("\n");
    sb.append("    standardMultipleImageText: ").append(toIndentedString(standardMultipleImageText)).append("\n");
    sb.append("    standardProductDescription: ").append(toIndentedString(standardProductDescription)).append("\n");
    sb.append("    standardSingleImageHighlights: ").append(toIndentedString(standardSingleImageHighlights)).append("\n");
    sb.append("    standardSingleImageSpecsDetail: ").append(toIndentedString(standardSingleImageSpecsDetail)).append("\n");
    sb.append("    standardSingleSideImage: ").append(toIndentedString(standardSingleSideImage)).append("\n");
    sb.append("    standardTechSpecs: ").append(toIndentedString(standardTechSpecs)).append("\n");
    sb.append("    standardText: ").append(toIndentedString(standardText)).append("\n");
    sb.append("    standardThreeImageText: ").append(toIndentedString(standardThreeImageText)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(java.lang.Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }

}

